This invention is related to the field of Electronic Design Automation, and more particularly, to a method for optimizing the widths of transistors in an integrated circuit (IC) while accounting for the effect of the interconnect resistors and capacitors (RC) on the timing of the circuit.
Integrated circuits are typically modeled to perform electrical analysis using for this purpose a netlist of transistors (referred to hereinafter as switching devices) interconnected by linear circuit elements, such as resistors (Rs) and capacitors (Cs). The widths of the transistors affect the performance (speed, area, power, etc.) of the circuit. The so-called ‘Transistor Widths Tuning’ problem involves assigning optimal values to the transistor widths to achieve the best possible performance, such as minimal area, minimal cycle time, and the like.
A variety of approaches has been used in industry to solve the tuning problem. One approach utilizes a general gradient-based non-linear optimizer as shown in FIG. 1. The major steps of the optimizer are outlined in FIG. 2. A netlist is read, and based thereon a static transistor level timer constructs a timing graph. The tuning problem is addressed as a general non-linear optimization problem characterized by a possibly non-linear objective function and non-linear constraints. The widths of the transistors are the variables of the problem. The objective function encompasses a combination of performance metrics applicable to the circuit being designed, such as cycle-time, area, power, and the like. The cycle-time defines the longest path delay. The delay of a stage on the path is generally a non-linear function of the widths of the transistors within the stage, the slew (i.e., the time taken for a signal to rise or fall from a first threshold value to a second threshold value) at the stage input, and the capacitive load of the next stage on the path. Thus, the cycle-time is a non-linear function of the variables of the problem.
Various constraints are included in the optimization problem posed to the non-linear optimizer. Some of these constraints enforce certain relationships between the variables and non-linear functions of the problem, for example requiring that the arrival time (AT) variable at the output of a stage is not less than the AT variable at the input of the stage plus the non-linear function which computed the delay through the stage. Other constraints may enforce design requirements on the final optimization result, such as limits on the area, delay, or power of the design. An iterative process begins after describing the problem to the non-linear optimizer. During each iteration, given a set of variable values, the optimizer requires function values and gradients (partial derivatives) for each non-linear function. The static timer uses an embedded time-domain circuit simulator that computes the values and returns them back to the optimizer which changes the values of the variables. The entire process is repeated until convergence is achieved.
A simple example of an optimization problem is illustrated in FIG. 3. Shown are three gates having a delay dij from node i to node j modeled as non-linear functions of the widths of the transistors within the gates. The arrival times AT1,2,3,4 at the inputs are assumed for purposes of explanation to be zero, but may also be non-zero values specified by the designer. The objective is to minimize the longest path delay max(AT7,AT8) subject to the four constraints shown. Details of the gradient-based method for tuning transistor widths are described in an article by A. R. Conn, et al., Gradient-based optimization of custom circuits using a static-timing formulation, Proc. Design Automation Conference, pages 452-459, June 1999.
In early (pre-layout) stages of the design process and in past technologies it was possible to model interconnect wires with reasonable accuracy by way of capacitors (Cs) and no resistors (Rs). In such an instance, the tuner uses a fast embedded circuit simulator that not only computes certain time-domain metrics such as delay (difference between mid-point crossing times of an output signal and an input signal) and slew (difference between high-point and low-point crossing times) of an output signal by performing a time-domain transient analysis of the circuit (to be referred hereinafter as ‘timing’), but which also computes sensitivities of those time-domain metrics with respect to the variations of the transistor widths, slew at an input, and load capacitance. Several fast circuit simulators capable of providing this information exist both within academia and commercial vendors.
In current technologies, circuit designers have found that ignoring the resistance (R) of the interconnect wiring when tuning the widths of the transistors causes unacceptable loss of accuracy. The delay of the interconnect (referred to hereinafter as RC delay) is becoming more significant as devices become smaller, as the technology advances, and as the design cycle time is pushed to even faster limits. To this end, the tuner may no longer neglect the interconnect resistance. Unfortunately, the presence of Rs in the interconnections is a major obstacle when using currently available embedded simulators either during timing or during the sensitivity computation.
Of late, a transistor level static timer using an embedded simulator has been successfully employed. A description thereof is found in an article by A. Devgan and R. A. Rohrer, Adaptively controlled explicit simulation, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. CAD-13(6), pp. 746-762, June 1994, referred to hereinafter as the Timing oriented simulator, primarily because it works well (both fast and accurate) in timing circuits that include Rs in the interconnects. Note that a static transistor-level timer requires the embedded simulator to only perform timing and not to perform sensitivity calculations. Unfortunately, while this simulator is fast and accurate when used for timing circuit with Rs, it is too slow and inaccurate to use for computation of sensitivities in such circuits. Accordingly a Timing oriented simulator cannot be used by the tuner. In the absence of Rs, the tuner uses an embedded simulator described by C. Visweswariah and R. A. Rohrer, Piecewise approximate circuit simulation, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. CAD-7(6), pp. 659-667, June 1988 which shall be referred henceforth to a Gradient oriented simulator, primarily because it computes both timing and sensitivities quickly and accurately for circuits without any Rs. Unfortunately, the Gradient oriented simulator is too slow even for timing circuits when Rs are present.
A problem remains unresolved in that no embedded simulators exist that are sufficiently fast and accurate for performing both timing and sensitivity calculations on circuits in the presence of Rs in the interconnect wiring. One is therefore faced with the daunting task of running the tuner on netlists generated by circuit extractors wherein the interconnect wiring is modeled by way of a large number of interconnect elements that includes both Rs and Cs, in addition to transistors. Often, the number of Rs exceeds many times the number of transistors, and the R values are spread across a large dynamic range. The large number of Rs increases the size of the circuit sent to the embedded simulator while the wide dynamic range in the resistor values causes a phenomenon know as stiffness in the differential equations solved by the simulator, leading to a significant slow-down in the simulator. The slowdown due to stiffness is dominant, especially in simulators like the Gradient oriented simulator that use explicit numerical integration methods.